package com.kykj.kykj.controller;

import com.kykj.kykj.entity.ResultEntity;
import com.kykj.kykj.service.impl.TagServiceImpl;
import com.kykj.kykj.vo.TagVo;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.*;

@RequestMapping("v2/tag/")
@CrossOrigin//解决跨域问题
@RestController
public class TagController {
    @Resource
    TagServiceImpl tagService;

    /**
     * 获取所有标签记录
     * @return JSON
     */
    @GetMapping("gettaglist")
    private ResultEntity getTagList() {
        ResultEntity resultEntity = new ResultEntity();
        try {
            resultEntity.setData(tagService.getTagList());
            resultEntity.setCode(0);
            resultEntity.setMsg("标签获取成功！");
        } catch (Exception e) {
            resultEntity.setCode(-1);
            resultEntity.setMsg("系统错误");
        }
        return resultEntity;
    }

    /**
     * 添加标签记录
     * @param tagVo 标签记录 VO
     * @return JSON
     */
    @PostMapping("tag")
    private ResultEntity addTag(@RequestBody TagVo tagVo) {
        ResultEntity resultEntity = new ResultEntity();
        try {
            if (tagService.addTag(tagVo) > 0) {
                System.out.println("当前自增的id是" + tagVo.getId() + "------自增");
                resultEntity.setCode(0);
                resultEntity.setMsg("标签添加成功！");
            } else {
                resultEntity.setCode(1);
                resultEntity.setMsg("添加失败！" + tagVo.getId());
            }
        } catch (Exception e) {
            e.printStackTrace();
            resultEntity.setCode(-1);
            resultEntity.setMsg("系统错误");
        }
        return resultEntity;
    }

    /**
     * 更新标签记录
     * @param tagVo 标签记录 VO
     * @return JSON
     */
    @PutMapping("tag")
    private ResultEntity updateTag(@RequestBody TagVo tagVo) {
        ResultEntity resultEntity = new ResultEntity();
        try {
            if (tagService.upTag(tagVo) > 0) {
                resultEntity.setCode(0);
                resultEntity.setMsg("标签修改成功！");
            } else {
                resultEntity.setCode(1);
                resultEntity.setMsg("标签修改失败！");
            }
        } catch (Exception e) {
            resultEntity.setCode(-1);
            resultEntity.setMsg("系统错误");
        }
        return resultEntity;
    }

    /**
     * 删除标签记录
     * @param id 标签记录 ID
     * @return JSON
     */
    @DeleteMapping("tag/{id}")
    private ResultEntity deleteTag(@PathVariable("id") int id) {
        ResultEntity resultEntity = new ResultEntity();
        try {
            if (tagService.delTag(id) > 0) {
                resultEntity.setCode(0);
                resultEntity.setMsg("标签删除成功！");
            } else {
                resultEntity.setCode(1);
                resultEntity.setMsg("标签删除失败！");
            }
        } catch (Exception e) {
            resultEntity.setCode(-1);
            resultEntity.setMsg("系统错误");
        }
        return resultEntity;
    }

    /**
     * 根据 ID 获取标签记录
     * @param id 标签 ID
     * @return JSON
     */
    @GetMapping("gettagbyid")
    private ResultEntity getTagById(@RequestParam("id") int id) {
        ResultEntity resultEntity = new ResultEntity();
        try {
            resultEntity.setData(tagService.getTagById(id));
            resultEntity.setCode(0);
            resultEntity.setMsg("数据获取成功！");
        } catch (Exception e) {
            resultEntity.setCode(-1);
            resultEntity.setMsg("系统错误");
        }
        return resultEntity;
    }
}